#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "tp3.h"
#define tamanho 200

  /*verificar parametros... acredito q seja soh preciso a sk ela vai apontar pra
  --lista invertida q aponta pra pk...*/
    void BuscaSK(PK *lista,int nsk){
    PK *found,*indicador;
    tt titulos;
    FILE *listainvertida;
    char c, s[200],aux[200],buffer[200];
    int i=0,j=FALSE,k=0,nrraux=1,contador=1,inc=0;
    listainvertida=fopen("listatitulo.dat","r");
    printf("Entre com as palavras com as quais deseja buscar:\n");
        
    /*#########################*/
    printf("%d\n",nsk);
    scanf("%c",&c);
    while(c=='\n'){
      printf("A palavra deve conter no minimo 1 caractere!\n");
      scanf("%c",&c);
    }
    while(c!='\n'){
      j=TRUE;
      s[i]=c;
      i++;
      if(i>tamanho){
        printf("A palavra deve conter no maximo 200 caracteres!\n");
        i=0;
        printf("Digite novamente!\n");
 
        while(c!='\n'){
          scanf("%c",&c);
        }
        j=FALSE;
      }
      scanf("%c",&c);
      if(s[0]==' '){
        i=0;
        j=FALSE;
      }       
      if(j==FALSE && i==0){
        while(c=='\n'){
          printf("A palavra deve conter no minimo 1 caractere!\n");
          scanf("%c",&c);
        }
      }
    }

    s[i]='\n';
    i=0;
    while(s[i]!='\n'){
      i++;
    }
    while(i<=(tamanho-1)){
      s[i]=' ';
      i++;
    }
    
    i=0;
    while(s[i]!=' ' && i<tamanho){
      k=0;
      while(s[i]!=' ' && i<tamanho){
        aux[k]=s[i];
        i++;
        k++;
      }
      i++;
      while(k<200){
        aux[k]=' ';
        k++;
      }
    }
/*############# aux possui a palavra inicio da busca*/
      
       if(nsk>0){
        found=BSearch(lista,aux,0,nsk-1);
      }
      else{
        found=NULL;
      }
 
    if(found == NULL){
      printf("NAO HA OBRAS COM ESSE NOME\n");
    }
    else{
         printf("found nrr %d\n",found->NRR);
         fseek(listainvertida,((found->NRR)*204)+200,0);
         fread(&nrraux,1,4,listainvertida);
         while(nrraux!= -1){
           contador++;
           printf("nrraux %d\n",nrraux);
           fseek(listainvertida,((nrraux)*204)+200,0);
           fread(&nrraux,1,4,listainvertida);
         }       
         printf("contador %d\n",contador);
         /*titulos = (tt)malloc(sizeof((titulos))*contador);*/
         nrraux=0;
         fseek(listainvertida,((found->NRR)*204),0);
         /*fread(titulos[inc].titulo,1,200,listainvertida);*/
         fread(buffer,1,200,listainvertida);
         fseek(listainvertida,((found->NRR)*204)+200,0);
         fread(&nrraux,1,4,listainvertida);
         while(nrraux!=-1){
           printf("nrraux %d\n",nrraux);
             for(i=0;i<200;i++){          
               /*printf("%c",titulos[inc].titulo[i]);*/
               printf("%c",buffer[i]);
             }
           inc++;
           fseek(listainvertida,(nrraux)*204,0);
           /*fread(titulos[inc].titulo,1,200,listainvertida);*/
           fread(buffer,1,200,listainvertida);
           fseek(listainvertida,((nrraux)*204)+200,0);
           fread(&nrraux,1,4,listainvertida);
           scanf("%d",&i);
         }
         printf("nrraux %d\n",nrraux);
         for(i=0;i<200;i++){          
           /*printf("%c",titulos[inc].titulo[i]);*/
           printf("%c",buffer[i]);
         }

    }
    /*necessita de um free no titulos...*/
    /*free(titulos);*/
    fclose(listainvertida);
    return;
    }
                  
                  
